package com.zhuhjay.service.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhuhjay.service.system.model.domain.FolderInfo;
import com.zhuhjay.service.system.model.entity.SystemDir;
import com.zhuhjay.service.system.model.vo.DirInfoVo;
import com.zhuhjay.service.system.model.vo.FoldersVo;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author Zhuhjay
 * @since 2023-03-29
 */
public interface SystemDirService extends IService<SystemDir> {

    /**
     * 创建文件夹
     *
     * @param name     文件夹名
     * @param power    文件夹权限
     * @param parentId 父文件夹id
     */
    void create(String name, String power, String parentId);

    /**
     * 删除文件夹
     *
     * @param id 文件夹id
     */
    void delete(String id);

    /**
     * 修改文件夹
     *
     * @param id    文件夹id
     * @param name  新文件夹名
     * @param power 新文件夹权限
     */
    void change(String id, String name, String power);

    /**
     * 获取文件夹信息
     *
     * @param id 文件夹id
     * @return 文件夹信息, 包括该文件夹下的文件和文件夹
     */
    DirInfoVo get(String id);

    /**
     * 文件夹列表
     *
     * @return 文件夹列表
     */
    FoldersVo folderList();

    /**
     * 获取公共文件夹
     *
     * @param id 公共文件夹id
     * @return 公共文件夹信息
     */
    DirInfoVo getPublic(String id);

    /**
     * 获取文件夹路径
     *
     * @param id 文件夹id
     * @return 文件夹路径
     */
    List<FolderInfo> getFolderPaths(String id);
}
